package com.hxd.tabactivityfragment.mvp.model

import com.hxd.tabactivityfragment.bean.IMPItem
import com.hxd.tabactivityfragment.bean.UserBean
import com.hxd.tabactivityfragment.util.BannerDataUtil
import com.hxd.tabactivityfragment.util.GsonToBean
import com.hxd.tabactivityfragment.util.L
import com.hxd.tabactivityfragment.util.URLProviderUtils
import com.kymjs.rxvolley.RxVolley
import com.kymjs.rxvolley.client.HttpCallback
import com.xuexiang.xui.widget.banner.widget.banner.BannerItem

/**
 *  项目名：    FoodOrigins
 *  包名：      com.hxd.tabactivityfragment.mvp.model
 *  文件名:     HomeModel
 *  创建者:     HXD
 *  创建时间:   2019/4/1 21:20
 *  描述:       Home页数据获取
 */

class HomeModel {

    /**
     * 获取首页列表数据
     */
    fun getItemData(onHomeResultListener: OnHomeItemListener){
        RxVolley.get(URLProviderUtils.getIMPInfoUrl(1, 4),object: HttpCallback(){
            override fun onSuccess(result: String?) {
                onHomeResultListener.getHomeItemSuccess(GsonToBean.JsonToBean(result))
            }

            override fun onFailure(errorNo: Int, strMsg: String?) {
                onHomeResultListener.getHomeFailure("IMPInfo-onFailure")
            }
        })
    }

    fun loadItemData(size:Int, onHomeResultListener: OnHomeItemListener){
        val Offset = (size / 20) + 1
        val Size = size % 20
        RxVolley.get(URLProviderUtils.getIMPInfoUrl(Offset, Size), object:HttpCallback(){
            override fun onSuccess(result: String?) {
                onHomeResultListener.getHomeItemSuccess(GsonToBean.JsonToBean(result))
            }

            override fun onFailure(errorNo: Int, strMsg: String?) {
                onHomeResultListener.getHomeFailure("IMPInfo-onFailure")
            }
        })
    }

    /**
     * 获取轮播图数据
     */
    fun getBannerData(onHomeBannerListener: OnHomeBannerListener){
        onHomeBannerListener.getBannerDataSuccess(BannerDataUtil.getDatas())
    }

    //回调接口
    interface OnHomeItemListener {
        /**
         * 获取Item数据成功
         */
        fun getHomeItemSuccess(impItem: IMPItem)

        /**
         * 获取Item数据失败返回消息提示
         */
        fun getHomeFailure(msg:String)
    }

    interface OnHomeBannerListener{
        /**
         * 获取Banner数据成功
         */
        fun getBannerDataSuccess(bannerData:ArrayList<BannerItem>)

        /**
         * 获取Banner数据失败返回消息提示
         */
        fun getHomeFailure(msg:String)
    }

}